/**
 * 日期工具函数
 */

/**
 * 将日期对象转换为LocalDateTime格式的字符串 (YYYY-MM-DD HH:mm:ss)
 * @param {Date} date - 日期对象
 * @returns {string} 格式化后的日期字符串
 */
export function formatToLocalDateTime(date) {
  if (!date) return '';
  
  // 确保输入是Date对象
  const dateObj = date instanceof Date ? date : new Date(date);
  
  // 判断日期是否有效
  if (isNaN(dateObj.getTime())) {
    return '';
  }
  
  // 获取年月日时分秒并补零
  const year = dateObj.getFullYear();
  const month = String(dateObj.getMonth() + 1).padStart(2, '0');
  const day = String(dateObj.getDate()).padStart(2, '0');
  const hours = String(dateObj.getHours()).padStart(2, '0');
  const minutes = String(dateObj.getMinutes()).padStart(2, '0');
  const seconds = String(dateObj.getSeconds()).padStart(2, '0');
  
  // 拼接成YYYY-MM-DD HH:mm:ss格式
  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}

/**
 * 将日期对象转换为日期字符串 (YYYY-MM-DD)
 * @param {Date} date - 日期对象
 * @returns {string} 格式化后的日期字符串
 */
export function formatToDateString(date) {
  if (!date) return '';
  
  // 确保输入是Date对象
  const dateObj = date instanceof Date ? date : new Date(date);
  
  // 判断日期是否有效
  if (isNaN(dateObj.getTime())) {
    return '';
  }
  
  // 获取年月日并补零
  const year = dateObj.getFullYear();
  const month = String(dateObj.getMonth() + 1).padStart(2, '0');
  const day = String(dateObj.getDate()).padStart(2, '0');
  
  // 拼接成YYYY-MM-DD格式
  return `${year}-${month}-${day}`;
}

/**
 * 解析字符串为Date对象
 * @param {string} dateString - 日期字符串
 * @returns {Date|null} 解析后的Date对象，解析失败返回null
 */
export function parseDate(dateString) {
  if (!dateString) return null;
  
  const date = new Date(dateString);
  return isNaN(date.getTime()) ? null : date;
} 